A common practice today is to develop an application that is specific to a company or vendor. A service provider may be required to develop multiple versions of the same application that will work with multiple applications from different vendors. In many cases, the changes to the application may only be minor changes, such as the customization of a look-and-feel. This model works fine when the number of applications is small and the changes are very minor.
However, the proliferation of the Internet has changed the number of applications in use. Today, companies are demanding applications that customers can download onto their portable devices, such as a smart phone. This trend has proliferated the number of applications being developed. As a result, the testing burden becomes increasing difficult as the number of versions of the same application proliferates into tens or hundreds of different applications. Moreover, as the number of changes to the application increases, testing costs can increase dramatically because each application has to be tested fully. Full testing of this many applications can easily become cost prohibitive.
To alleviate this problem, co-develop of applications can ease the ability to develop custom applications. However, this practice has its own set of problems, such as who owns the rights to the source code and who can legally sell or distribute the final product. If the ownership rights are not clear, neither company may be able to be able to sell or ship the application via an application store owned by a third party. As a result, only a limited number of companies or vendors can be supported.